Lecture 04 Inventory Exercises

This week we will do a series of short exercises involving lists of books. We'll do these one at a time.

For each question, copy the define-structs and the contract and purpose statement into a Racket definition window, and write the function definition. Don't worry about examples or tests.

When you are called on, please copy your solution into one of the following pages:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;; templates omitted....

(define-struct book (isbn
                     title author
                     publisher cost price
                     on-hand
                     thickness))

A Book is a (make-book PosInt String String String PosInt PosInt NonNegInt
PosReal)

Interp:
(make-book isbn title author publisher cost price n w)
represents a book where
isbn       is its international standard book nuber
title      is its title
author     is its author
publisher  is its publisher
cost       is its cost to the bookstore (how much we pay the publisher
              for a copy)
price      is its price (how much we charge for a copy)
n          is the number of copies on hand
w          is the thickness of the book (how much space it occupies on
              the shelf)

An Inventory is a ListOfBook
WHERE: the list is sorted in ascending order by ISBN, and there are no
       duplicate ISBN's in the list

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(define-struct line-item (isbn ncopies))

A LineItem is a (make-line-item PosInt PosInt)

(make-line-item i n) represents an order for n copies of a book whose ISBN
is i.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

An Order is a ListOfLineItem
WHERE: there are no duplicate isbn's in the order

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Last modified: Tue Oct 6 21:47:41 Eastern Daylight Time 2015